package org.zizi.dao;

import java.util.List;

import org.zizi.modal.VatType;

public class VatTypeDaoImpl extends BaseDao implements VatTypeDao
{
	public void addOrUpdateVatType(VatType type) throws Exception
	{
		if (type.getId() > 0)
			esql.helper().updatei(type, "t_vat_type", type.getId());
		else
			esql.helper().inserti(type, "t_vat_type");
	}
	
	public VatType getVatType(long id) throws Exception
	{
		return esql.helper().queryi(VatType.class, "t_vat_type", "id=?", id);
	}

	public void deleteVatType(long id) throws Exception
	{
		esql.helper().deletei("t_vat_type", id);
	}

	public List<VatType> listAllVatTypes(Boolean enabled) throws Exception
	{
		if (enabled != null)
			return esql.helper().listi(VatType.class, "t_vat_type", "id", "enabled=?", enabled);
		else
			return esql.helper().listi(VatType.class, "t_vat_type", "id", null);
	}

	public int getVatTypeRefrencedCount(long id) throws Exception
	{
		return esql.helper().query(Integer.class, "t_vat_credit_invoice", "count(*)", null, "invoice_type_id=?", id);
	}
}
